//package com.usian.pay.config;
//
//
//import com.rabbitmq.client.Channel;
//import com.usian.pay.vo.Mail;
//import com.usian.pay.vo.Sms;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.amqp.core.Message;
//import org.springframework.amqp.rabbit.annotation.Queue;
//import org.springframework.amqp.rabbit.annotation.RabbitHandler;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.context.annotation.Lazy;
//import org.springframework.stereotype.Component;
//
//@Component
//@Slf4j
//public class TestConsumer {
//
//
//    @RabbitListener(queuesToDeclare = @Queue("mail.send"))
//    @RabbitHandler
//    public String testConsumer(Mail mail, Channel channel, Message message) throws Exception {
//        log.info("消费消息:{}", mail.toString());
//        /**
//         * ACK，用的最多的一种
//         * deliveryTag:该消息的index
//         * false:表示不是批量
//         */
//        channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
//        /**
//         * Nack:手动拒绝
//         * deliveryTag:该消息的index
//         * false:表示不是批量
//         * false：被拒绝的是否重新入队列，一般默认false,因为第一次被拒绝后，后面多次肯定也被拒绝
//         */
////        channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, false);
//        /**
//         * Reject:手动拒绝,和Nack相比少一个参数
//         * deliveryTag:该消息的index
//         * false：被拒绝的是否重新入队列，一般默认false,因为第一次被拒绝后，后面多次肯定也被拒绝
//         */
////        channel.basicReject(message.getMessageProperties().getDeliveryTag(), false);
//        return "消费-result";
//    }
//
//
//
//    @RabbitListener(queuesToDeclare = @Queue("sms.send"))
//    @RabbitHandler
//    public String testConsumer2(Sms sms, Channel channel, Message message) throws Exception {
//        log.info("消费消息:{}", sms.toString());
//        /**
//         * ACK，用的最多的一种
//         * deliveryTag:该消息的index
//         * false:表示不是批量
//         */
//        channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
//        /**
//         * Nack:手动拒绝
//         * deliveryTag:该消息的index
//         * false:表示不是批量
//         * false：被拒绝的是否重新入队列，一般默认false,因为第一次被拒绝后，后面多次肯定也被拒绝
//         */
////        channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, false);
//        /**
//         * Reject:手动拒绝,和Nack相比少一个参数
//         * deliveryTag:该消息的index
//         * false：被拒绝的是否重新入队列，一般默认false,因为第一次被拒绝后，后面多次肯定也被拒绝
//         */
////        channel.basicReject(message.getMessageProperties().getDeliveryTag(), false);
//        return "消费-result";
//    }
//
//
//}